package com.igeek.boot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.HiddenHttpMethodFilter;
import org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

/**
 * @Author fengqq
 * @Description  定制springmvc
 * @Date 2024/8/15  10:26
 *
 * WebMvcAutoConfiguration
 * 1.@Bean 替换底层组件
 *
 * 定制springmvc：
 * 1.@Configuration + implements WebMvcConfigurer 重写部分方法
 *
 * 全面接管springMVC(使用较少):
 *  @EnableWebMvc +extends DelegatingWebMvcConfiguration(extends WebMvcConfigurationSupport)
 *  注意：@EnableWebMvc不要随意使用
 */
@Configuration
//@EnableWebMvc
public class MyConfig /*extends DelegatingWebMvcConfiguration*/ {

    //通过@Bean替换 底层HiddenHttpMethodFilter 优先使用自己定制的
    @Bean
    public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
        HiddenHttpMethodFilter hiddenHttpMethodFilter =
                new HiddenHttpMethodFilter();
        hiddenHttpMethodFilter.setMethodParam("_m");
        return hiddenHttpMethodFilter;
    }

}
